from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import requests
from bs4 import BeautifulSoup

import pandas as pd
import time
import random


driver = webdriver.Chrome()


def get_book_links():

    books = set()

    for i in range(1, 1385):
        # 目标网址
        url = f'http://www.cmpedu.com/books/list.htm?p={i}'

        # 发送 HTTP 请求
        response = requests.get(url)
        response.encoding = 'utf-8'  # 根据网页的编码设置

        # 解析 HTML 内容
        soup = BeautifulSoup(response.text, 'html.parser')

        ts_solgcontlist = soup.find_all('div', class_='ts_solgcontlist')

        # 查找所有图书链接的标签，这里假设图书链接在<a>标签中
        # 你需要根据实际的 HTML 结构调整选择器

        for item in ts_solgcontlist:
            book_link = item.find('a', href=True)

            if book_link and book_link['href'].startswith('/books/book/'):
                print(f"page {i}", book_link['href'])
                link = f'http://www.cmpedu.com/{book_link["href"]}'
                books.add(link)

        # 过滤出图书链接，这里假设链接以 '/books/' 开头
        # book = [link['href']
        #         for link in book_link if link['href'].startswith('/books/book/')]

        # time.sleep(3)    # 延迟 3 秒，防止被网站识别为爬虫

    return books


def login_cmpedu():

    url = "http://www.cmpedu.com/account/login.htm"

    driver.get(url)

    # driver.find_element(By.CLASS_NAME, "jd_regrightyy").click()

    time.sleep(3)

    username = driver.find_element(By.ID, "j_username")
    password = driver.find_element(By.ID, "j_password")

    username.send_keys('13726204979')

    password.send_keys('2010jing')

    driver.find_element(By.ID, "login_save").click()

    url = "http://www.cmpedu.com/books/list.htm?p=1"
    driver.get(url)

    time.sleep(10)

    comment_book('book_links.csv')


def comment_book(link_file):

    book_reviews = [
        '这本书很不错，值得一读！',
        '这本书很不错，推荐给喜欢阅读的朋友！',
        '这本书很不错，作者讲的很清楚，适合作为高中生的入门读物。',
        '这本书很不错，作者用通俗易懂的语言，讲述了许多有趣的故事。',
        "这本书非常引人入胜，作者的文笔流畅，故事构思巧妙。",
        "内容丰富，观点独特，读后让我对这个话题有了全新的认识。",
        "对于初学者来说，这本书是一个很好的入门读物，易于理解。",
        "书中的案例分析非常实用，对我解决实际问题帮助很大。",
        "作者在书中展示的专业知识令人印象深刻，是一本值得一读的好书。",
        "这本书的封面设计很吸引人，内容也同样精彩。",
        "故事节奏紧凑，人物塑造鲜明，是一本不容错过的小说。",
        "书中的插图非常精美，孩子们一定会喜欢这本书。",
        "对于喜欢历史的人来说，这本书提供了丰富的历史细节和深刻的见解。",
        "这本书的科学原理解释得非常清楚，适合对科学感兴趣的读者。",
        "作者的幽默感在书中表现得淋漓尽致，让人在阅读中不断发笑。",
        "这本书的写作风格非常独特，让人耳目一新。",
        "书中的食谱简单易学，我已经尝试了几个，味道都很棒。",
        "对于旅行爱好者来说，这本书提供了很多实用的旅行建议和目的地推荐。",
        "这本书的自我提升技巧非常实用，我已经在日常生活中开始实践了。",
        "书中的诗歌语言优美，情感真挚，让人感动。",
        "这本书的商业策略分析非常深入，对于创业者来说是一本宝贵的资源。",
        "书中的摄影技巧讲解得非常详细，对于摄影爱好者来说很有帮助。",
        "这本书的故事情节跌宕起伏，让人一读就停不下来。",
        "作者在书中对人性的探讨非常深刻，引人深思。"


    ]
    df = pd.read_csv(link_file)
    for i, row in df.iterrows():
        if i < 3565:
            continue
        link = row['book_link']
        print(link)
        driver.get(link)
        time.sleep(1)
        # 随机获取一条评论
        random_review = random.choice(book_reviews)
        print(f"comment on {i},  link: {link}")
        try:
            driver.find_element(By.ID, "INTRO_").send_keys(random_review)
            driver.find_element(By.CLASS_NAME, "jg_msgcont_btn").click()

            time.sleep(5)
        except:
            print("评论失败")
            continue


if __name__ == '__main__':
    login_cmpedu()
    # comment_book('links.csv')
